package com.tuda.system.service;

import com.tuda.common.core.domain.R;
import com.tuda.system.domain.TudaOrder;
import com.tuda.system.domain.TudaOrderTransfer;
import com.tuda.system.model.param.*;
import com.tuda.system.model.result.*;
import org.springframework.web.bind.annotation.RequestBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @ClassName IUserOrderService
 * @Description TODO
 * @Author Admin
 * @Date 2023/7/14 13:22
 * @Version 1.0
 **/
public interface IUserOrderService {

    void wxMiniNotify(HttpServletRequest request, HttpServletResponse response) throws Exception;

    /**
     * 获取订单列表
     * @return
     */
    R<OrderInfoResult> getList(QueryOrderListParam param);

    /**
     * 我的-数据列表
     * @param param
     * @return
     */
    R<OrderInfoResult> getUserList(QueryUserOrderListParam param);


    /**
     * 获取订单详情
     * @return
     */
    R<OrderTInfoResult> getInfo(GetOrderInfoParam param);

    R<NewOrderListResult> getOrderTransferList(Long orderId);

    R updateTransfer(OrderTransferResult orderTransfer);

    /**
     * 建单
     * @param params
     * @return
     */
    R addOrder(AddOrderParam params);

    R<List<UserListResult>> queryUserInfo();

    /**
     * 确认提车
     * @return
     */
    R carOk(CarOkParam param);

    /**
     * 确认信息
     * @return
     */
    R confirm(CarOkParam param);

    /**
     * 确认车辆已到站
     * @param param
     * @return
     */
    R confirmSignFor(GetOrderInfoParam param);

    /**
     * 终点站签收
     * @param param
     * @return
     */
    R endSignFor(GetOrderInfoParam param);

    /**
     * 支付
     * @param param
     * @return
     */
    R payMoney(PayMoneyParam param);

    /**
     * 扫码支付
     * @param param
     * @return
     */
    R toWxQrPay(PayMoneyParam param);

    /**
     * 获取订单状态
     * @param param
     * @return
     */
    R queryOrderPayType(PayMoneyParam param);
}
